package com.itheima.huikebackend.service;

import com.itheima.huikebackend.common.PageResult;
import com.itheima.huikebackend.dto.DicCreateDTO;
import com.itheima.huikebackend.dto.DictListDTO;
import com.itheima.huikebackend.vo.SysDictDataVO;
import com.itheima.huikebackend.vo.SysDictListVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

public interface DictionaryService {
    /**
     * 列表
     *
     * @param dictListDTO dict dto列表
     * @return {@link PageResult}
     */
    Map list(DictListDTO dictListDTO);

    /**
     * 查询类型
     *
     * @param type 类型
     * @return {@link List}<{@link SysDictDataVO}>
     */
    List<SysDictDataVO> queryType(String type);

    /**
     * 查询通过id
     *
     * @param dictId dict id
     * @return {@link SysDictListVO}
     */
    SysDictListVO queryById(Long dictId);

    /**
     * 查询类型列表
     *
     * @param dictListDTO dict dto列表
     * @return {@link Map}
     */
    Map queryTypeList(DictListDTO dictListDTO);

    /**
     * 创建
     *
     * @param dicCreateDTO dic创建dto
     */
    void create(DicCreateDTO dicCreateDTO);

    /**
     * 删除
     *
     * @param id id
     */
    void delete(List<Long> ids);

    /**
     * 更新
     *
     * @param dicCreateDTO dic创建dto
     */
    void update(DicCreateDTO dicCreateDTO);

    /**
     * 出口
     *
     * @param response 响应
     */
    void export(HttpServletResponse response);
}
